package com.sudu.service;

import com.sudu.domain.User;
import com.sudu.domain.UserInfo;
import org.apache.ibatis.annotations.Update;


/**
 * 登录/注册 用户的业务层接口
 */

public interface UserService {
    /**
     * 注册（保存） 用户
     * @param user 用户对象
     * @return 一个 boolean值
     */
     boolean saveUser (User user) ;

    /**
     * 按 昵称 查找用户
     * @param username 用户昵称
     * @return 一个用户对象
     */
    User fineByUsername(String username) ;

    /**
     * 按 用户账号 查找用户
     * @param phone 用户账号（手机号
     * @return 一个用户对象
     */
    User fineByPhone(String phone) ;

    /**
     * 按 用户账号 查找用户
     * @param id 用户id
     * @return 一个用户对象
     */
    User fineByID(int id) ;

    /**
     * 根据用户id查找账户
     * @param uid 用户id int
     * @return 用户账户 String
     */
    String finePhoneByUid(int uid) ;

    /**
     * 根据用户id 更改用户签名
     * @param id
     * @param cardCase
     * @return boolean
     */
    public boolean updateCardCase(int id , String cardCase) ;

    /**
     * 根据用户id 更改用户昵称
     * @param id
     * @param username
     * @return boolean
     */
    public boolean updateUsername(int id , String username) ;

    /**
     * 根据用户id 更改用户头像
     * @param id
     * @param handUrl
     * @return boolean
     */
    public boolean updateHandUrl(int id , String handUrl) ;

    /**
     * 根据用户id 查找用户信息
     * @param id
     * @return 返回一个 用户信息类
     */
    public UserInfo getUserInfoById(int id) ;

    /**
     *  更改用户信息
     * @param username
     * @param cardCase
     * @param sex
     * @return boolean值
     */
    boolean updateUserinfo(String username , String cardCase , String sex ,int id) ;

    /**
     * 逻辑删除
     * @param id
     * @return boolean
     */
    boolean deleteUser(int id , String username , String handUrl) ;
}
